1. Field of the Invention
The present invention relates to a router and a method for using stateful load balancing filters which are located on a dataplane (fastpath) to distribute traffic/packets across a network of servers.
2. Description of Related Art
The following abbreviations are herewith defined, at least some of which are referred to in the ensuing description of the prior art and the preferred embodiment of the present invention.
CAMContent Addressable MemoryDSTDestinationFTPFile Transfer ProtocolHTTPHyper Text Transfer ProtocolTCPTransmission Control ProtocolSAPService Advertising ProtocolSRCSourceIDIdentificationIPInternet ProtocolISPInternet Service Provider
The Internet is a global system of computer networks which connects millions of users worldwide by using a communications protocol called TCP/IP. People and businesses around the world can use the Internet to retrieve information, correspond with other Internet users, conduct business globally, and access a vast array of services and resources. The number of Internet users worldwide is believed to be more than 650 million and this number is growing rapidly. As a result of this growth, the search engines, ISPs, and high volume websites all have to deal with increasing numbers of users and increasing numbers of requests.
A system administrator can deal with these demands by purchasing a large server, but even the most powerful and expensive server can eventually fail or become overloaded with a large number of requests. As such, the system administrator typically creates a network server cluster, which consists of a group of servers which all have a common virtual IP address. To handle a large number of requests, it is necessary to employ a load balancing scheme to distribute the requests evenly across the group, or cluster, of commonly addressed servers. Thus, when one server is handling multiple user requests, then a new request could be forwarded to another server which has more capacity. Examples of two load balancing schemes which have been used in the past are discussed next with respect to FIGS. 1 and 2 (PRIOR ART).
Referring to FIG. 1 (PRIOR ART), there is a block diagram which is used to explain how one traditional load balancing scheme directs an incoming packet to a lightly loaded server which is located within a server farm. In this scheme, the router 102 receives a HTTP packet 104 (associated with a stream of HTTP packets) and then dispatches the HTTP packet 104 to a load director 106 (e.g., Cisco's load director 106). The load director 106 analyzes the HTTP packet 104 and determines that the HTTP packet 104 should be sent to the lightly loaded HTTP server 108a (for example). In this example, the load director 106 chooses the lightly loaded HTTP server 108a from multiple HTTP servers 108a, 108b . . . 108n and multiple FTP servers 110a, 110b . . . 110n. Then, the load director 106 forwards the HTTP packet 104 to the router 102 which sends the HTTP packet 104 to the lightly loaded HTTP server 108a. A problem with this load balancing scheme is that it requires the use of a remote load director 106. Moreover, this load balancing scheme introduces a significant amount of processing delay because the HTTP packet 104 must travel from the router 102 to the load director 106 and then back to the router 102 before being sent to the light loaded HTTP server 108a. This is not desirable.
Referring to FIG. 2 (PRIOR ART), there is a block diagram which is used to explain how another traditional load balancing scheme directs an incoming packet to a lightly loaded server which is located within a server farm. In this scheme, the router 202 receives a HTTP packet 204 (associated with a stream of HTTP packet) on a fastpath 206 (dataplane 206) and forwards the HTTP packet 204 to a slowpath 208 (Level 4 208). The slowpath 208 implements a server selection algorithm (e.g., round robin, least number of connections) which selects a lightly loaded HTTP server 210b (for example) that should receive the HTTP stream 204. In this example, the server selection algorithm selects the lightly loaded HHTP server 210b from multiple HTTP servers 210a, 210b . . . 210n and multiple FTP servers 212a, 212b . . . 212n. Then, the router 202 sends the HTTP packet 204 back to the fastpath 206 and from there the HTTP packet 204 is directed to the lightly loaded HTTP server 210b. A problem with this load balancing scheme is that it introduces a significant amount of processing delay especially when each packet 204 (one shown) in the HTTP session needs to be processed up in the slowpath 208. Accordingly, there is a need for a load balancing scheme which can effectively direct an incoming packet to a lightly loaded server located in a server farm. This need and other needs are addressed by the present invention.